Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
Hilo de rubí. ¿Por qué "#Únete"?

Esto puede parecer una pregunta tonta. pero por favor guíame.

https://apidock.com/ruby/Thread/join

 a = Thread.new { print "a"; } a.join(5)

Como vemos aquí, el método #join es básicamente, "Oye OS, ejecuta este bloque de código (subproceso), dentro de 5 segundos".

pero ¿de dónde viene este nombre? join ¿Por qué no simplemente run ?
en Java, parece un significado ligeramente diferente.

EDITAR

Descubrí que en realidad #join está bloqueando la llamada. Significa que comprueba 5 segundos después, si el hilo se ha terminado o no. Si finished , mata el hilo. (X) . join devolverá el objeto Thread. que ya está Muerto.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No exactamente. join es el nombre tradicional de la operación que espera a que se complete un subproceso. La ejecución se "divide" cuando inicia un hilo y se "une" cuando un padre se da cuenta de la finalización de un hilo.

a.join(5) no dice "ejecutar este hilo dentro de 5 segundos", dice "esperar hasta 5 segundos para que termine este hilo". Comienza a ejecutarse tan pronto como lo crea.

over 4 years ago · Santiago Trujillo Relatório

0

Thread.new inicia el hilo. Puedes hacer una prueba sencilla:

 Thread.new { puts "started" }; sleep 1 puts "done"

La impresión started de inmediato, luego esperará un segundo y luego done imprimirá.

O ejecute Thread.new en irb y vea cómo se ejecuta inmediatamente.

Necesita a.join porque sin él, el programa principal podría salir y eliminar los subprocesos antes de que se complete el subproceso. Por ejemplo...

 Thread.new do puts "start" # Simulate the thread doing some work sleep 1 puts "end" end sleep 0.5

Esto imprimirá el start y eso es todo. El programa principal terminará y matará el hilo. El proceso principal debe esperar hasta que el subproceso se complete conjoin .

Se llama "unirse" porque está uniendo el hilo nuevamente con el hilo principal que lo generó.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda